package br.com.jvet.bean;

import java.util.List;

import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import javax.persistence.Query;
import javax.persistence.TypedQuery;

import br.com.jvet.entidade.Cliente;

public class ClienteBean implements GenericBean {

	@PersistenceContext
	private EntityManager em;

	public <E> void incluir(E cliente) {
		em.persist(cliente);

	}

	public <E> void alterar(E cliente) {
		em.merge(cliente);

	}

	public <E> void excluir(E cliente) {
		em.remove(cliente);

	}

	public <E> Cliente consultar(E cliente) {
		return em.find(Cliente.class, cliente);
	}

	@SuppressWarnings("unchecked")
	public <E> List<E> listar() {
		TypedQuery<?> query = this.em.createQuery("SELECT u FROM "
				+ "tbcliente" + " u", Cliente.class);
		List<E> resultList = (List<E>) query.getResultList();
		return resultList;
	}

	public boolean consultarPorCnpjCpf(Cliente cliente) {
		Query c = this.em.createQuery("SELECT c FROM tbcliente"
				+ " c where cnpjcpf = :cnpjcpf");

		c.setParameter("cnpjcpf", cliente.getDadosCadastro().getCnpjCpf());

		if (c.getResultList() != null && c.getResultList().size() > 0) {
			return true;
		}
		return false;
	}

}
